package com.czy.util;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;

import java.util.List;


/**
 * @Author: czy
 * @Date: 2019/5/20 9:17
 */
public final class JsonUtils {
    /**
     * 将object对象封装到实体类
     * @param object json对象
     * @param clazz
     * @param <T>   java对象
     * @return
     */
    public static <T> T parseObject(Object object,Class<T> clazz){
        if (object==null){
            return null;
        }
        //转换为json字符串
        String jsonString = JSON.toJSONString(object);
        //json字符串解析为java对象
        T t = JSON.parseObject(jsonString, clazz);
        return t;
    }

    /**
     * 将object对象封装到List集合
     * @param object
     * @param clazz
     * @param <T>
     * @return
     */
    public static <T> List<T> parseArray(Object object,Class<T> clazz){
        if (object==null){
            return null;
        }
        //转换为json字符串
        String jsonString = JSON.toJSONString(object);
        //json字符串转为List集合
        List<T> tList = JSON.parseArray(jsonString, clazz);
        return tList;
    }

    /**
     * 根据键在json字符串中查找对应的值
     * @param key   键
     * @param jsonString    json字符串
     * @return
     */
    public static String getValueByKey(String key,String jsonString){
        //1.将json字符串转换为json对象
        JSONObject jsonObject = JSON.parseObject(jsonString);
        //2.根据键获取值
        String value = jsonObject.get(key).toString();
        return value;
    }
}
